#pragma warning(disable:4996)
#include<stdio.h>
int main()
{
	//找一个整数二进制存储中1的个数
	int a = -1;
		//1000 0001-原码
		//1111 1111-a-补码
		//1111 1110-(a-1)
//a&(a-1)-1111 1110-最后一个1被去掉
	int count = 0;
	while(a)
	{
		a = a & (a - 1);
		//a&(a-1)进行一次可以去掉a二进制中最右边的第一个1
		//当1去完后，a值为0，停止循环
			count++;
	}
	printf("%d\n", count);
	return 0;
}